package com.ssm.util;

import java.util.List;

/**
 * 异步请求响应的数据格式工具类
 * 针对所有异步请求响应统一的数据格式
 */
public class JSONResult {
    /**
     * 响应业务状态码
     * 成功：200
     * 失败：500
     */
    private Integer status;
    /**
     * 响应信息
     */
    private String message;
    /**
     * 响应非集合数据
     */
    private Object data;
    /**
     * 响应集合数据
     * rows名称是为适用于前端bootstrap-table插件
     */
    private List rows;
    /**
     * 响应分页查询时的总记录数
     * 为适用于前端bootstrap-table插件
     */
    private Long total;

    public JSONResult(Integer status, String message, Object data, List rows, Long total) {
        this.status = status;
        this.message = message;
        this.data = data;
        this.rows = rows;
        this.total = total;
    }

    /**
     * 响应增删改时使用的方法
     */
    public static JSONResult success(){
        return new JSONResult(200,"success",null, null, null);
    }
    public static JSONResult success(String message){
        return new JSONResult(200, message,null, null, null);
    }
    public static JSONResult error(){
        return new JSONResult(500,"error",null, null, null);
    }
    public static JSONResult error(String message){
        return new JSONResult(500, message,null, null, null);
    }

    /**
     * 响应分页查询时使用的方法
     */
    public static JSONResult success(List rows, Long total){
        return new JSONResult(200,"success",null, rows, total);
    }

    /**
     * 响应单条记录查询时使用的方法
     */
    public static JSONResult success(Object data){
        return new JSONResult(200,"success", data, null, null);
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public List getRows() {
        return rows;
    }

    public void setRows(List rows) {
        this.rows = rows;
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }
}
